package com.ruoyi.energy.mapper;

import java.util.List;
import com.ruoyi.energy.domain.EmsAlarmRule;

/**
 * 告警规则Mapper接口
 * 
 * @author ruoyi
 * @date 2024-01-20
 */
public interface EmsAlarmRuleMapper {
    
    /**
     * 查询告警规则
     * 
     * @param ruleId 告警规则主键
     * @return 告警规则
     */
    public EmsAlarmRule selectEmsAlarmRuleByRuleId(Long ruleId);

    /**
     * 查询告警规则列表
     * 
     * @param emsAlarmRule 告警规则
     * @return 告警规则集合
     */
    public List<EmsAlarmRule> selectEmsAlarmRuleList(EmsAlarmRule emsAlarmRule);

    /**
     * 查询有效的告警规则列表
     * 
     * @return 告警规则集合
     */
    public List<EmsAlarmRule> selectActiveAlarmRuleList();

    /**
     * 根据设备ID查询告警规则
     * 
     * @param deviceId 设备ID
     * @return 告警规则集合
     */
    public List<EmsAlarmRule> selectAlarmRuleByDeviceId(Long deviceId);

    /**
     * 查询全局告警规则（不限设备）
     * 
     * @return 告警规则集合
     */
    public List<EmsAlarmRule> selectGlobalAlarmRuleList();

    /**
     * 检查规则名称是否唯一
     * 
     * @param ruleName 规则名称
     * @return 结果
     */
    public EmsAlarmRule checkRuleNameUnique(String ruleName);

    /**
     * 新增告警规则
     * 
     * @param emsAlarmRule 告警规则
     * @return 结果
     */
    public int insertEmsAlarmRule(EmsAlarmRule emsAlarmRule);

    /**
     * 修改告警规则
     * 
     * @param emsAlarmRule 告警规则
     * @return 结果
     */
    public int updateEmsAlarmRule(EmsAlarmRule emsAlarmRule);

    /**
     * 删除告警规则
     * 
     * @param ruleId 告警规则主键
     * @return 结果
     */
    public int deleteEmsAlarmRuleByRuleId(Long ruleId);

    /**
     * 批量删除告警规则
     * 
     * @param ruleIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteEmsAlarmRuleByRuleIds(Long[] ruleIds);

    /**
     * 修改规则状态
     * 
     * @param emsAlarmRule 告警规则
     * @return 结果
     */
    public int updateAlarmRuleStatus(EmsAlarmRule emsAlarmRule);
} 